package com.gylang.print.pdf.domain.component.table;

import com.gylang.print.pdf.enums.AlignEnums;
import com.gylang.print.pdf.enums.PdfFontType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * pdf表格
 *
 * @author gylang
 * data 2021/6/7
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface PdfTableField {

	/** 属性名 */
	String name() default "";

	/** 字体 */
	String font() default PdfFontType.STSONG_TTF;

	/** 字体大小 */
	float fontSize() default 8F;

	/** 颜色 */
	int bgColor() default 0xFFFFFF;

	/** 文本颜色 */
	int textColor() default 0x000000;

	/** 宽 */
	float width() default 80F;

	/** 高 */
	float height() default 40F;

	/** 排序 */
	int order() default Integer.MAX_VALUE;

	/** 自适应 */
	Flex flex() default Flex.FIX;


	/** 日期格式化 */
	String dateFormat() default "";

	/** 自定义格式化输出 */
	String format() default "";

	/** 间隔 */
	float interval() default 1;

	/** 行距 */
	float brInterval() default 1F;

	/**
	 * 读取内容转表达式 (如: 0=男,1=女,2=未知)
	 */
	String readConverterExp() default "";

	/** 位置 */
	AlignEnums align() default AlignEnums.LEFT;

	/** x轴左外边距 */
	float marginLeftX() default 2;

	/** x轴右外边距 */
	float marginRightX() default 2;

	/** y轴顶部外边距 */
	float marginTopY() default 2;

	/** y轴底部外边距 */
	float marginBottomY() default 2;

	public enum Flex {

		/** 固定大小 */
		FIX,
		/** 宽度自适应 */
		WITH_FLEX,
		/** 高度自适应 */
		HEIGHT_FLEX,
		/** acro 表单字段展示 */
		ACRO_FORM

	}
}
